package com.csg.ses.service.ses.impl;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.csg.ses.entity.ses.SysUserLoginEntity;
import com.csg.ses.service.ses.TokenService;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * @auther wangjun
 * @date 2020/11/16
 */
@Service
public class TokenServiceImpl implements TokenService {

    private static final long EXPIRE_TIME = 7 * 24 * 3600 * 1000;   //有效时长，单位毫秒
    Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME); //过期时间

    @Override
    public String getToken(SysUserLoginEntity userLogin) {
        String token = "";
        token = JWT.create().withAudience(userLogin.getLoginCode())  //将 login_code 保存到 token 里面
//                .withExpiresAt(date)    //过期时间（交由redis缓存控制）
                .sign(Algorithm.HMAC256(userLogin.getLoginPwd()));  //以 password 作为 token 的密钥
        return token;
    }
}
